package com.zenith.zongheng.demo.api;

import com.zenith.zongheng.demo.domain.dto.LeaveStatisticsDTO;
import com.zenith.zongheng.demo.domain.entity.LeaveInfo;
import com.baomidou.mybatisplus.extension.service.IService;
import com.zenith.zongheng.demo.domain.dto.LeaveInfoDTO;
import com.zenith.zongheng.demo.domain.dto.LeaveInfoSaveDTO;
import com.zenith.zongheng.demo.domain.vo.LeaveInfoVO;
import com.zenith.zongheng.common.domain.vo.PageVO;
import com.zenith.zongheng.system.domain.entity.SysUserinfo;
import com.zenith.zongheng.system.domain.vo.SysUnitinfoVO;

import java.util.List;
import java.util.Map;

/**
 * <p>
 *  服务类
 * </p>
 *
 * @author tangzx
 * @since 2022-01-06
 */
public interface LeaveInfoService extends IService<LeaveInfo> {

    PageVO<LeaveInfoVO> queryPage(LeaveInfoDTO dto);

    void saveLeaveInfo(LeaveInfoSaveDTO dto);

    void updateLeaveInfo(LeaveInfoSaveDTO dto);

    void deleteLeaveInfo(Long ... id);

    Integer leaveCountByYear(Long unitUserId);

    Map<SysUnitinfoVO,List<Map<SysUserinfo, List<LeaveInfo>>>> statistics(LeaveStatisticsDTO dto);


}
